package com.temp.utils;

import org.apache.shiro.crypto.hash.SimpleHash;
import org.apache.shiro.util.ByteSource;

import java.util.UUID;

public class PasswordHelper {
    // 算法名称
    private static final String ALGORITHM_NAME = "MD5";
    // 哈希迭代次数
    private static final int HASH_ITERATIONS = 1024;

    /**
     * 加密密码
     *
     * @param password 原始密码
     * @param salt     盐值
     * @return 加密后的密码
     */
    public static String encryptPassword(String password, String salt) {
        return new SimpleHash(
                ALGORITHM_NAME,
                password,
                ByteSource.Util.bytes(salt),
                HASH_ITERATIONS).toHex();
    }

    /**
     * 生成随机盐
     *
     * @return 随机盐值
     */
    public static String generateSalt() {
        return UUID.randomUUID().toString().replaceAll("-", "");
    }
}
